Termination Proof Script
Consider the TRS R consisting of the rewrite rules
|
| 1: |
|
rev(nil) |
→ nil |
| 2: |
|
rev(x . y) |
→ rev(y) ++ (x . nil) |
| 3: |
|
car(x . y) |
→ x |
| 4: |
|
cdr(x . y) |
→ y |
| 5: |
|
null(nil) |
→ true |
| 6: |
|
null(x . y) |
→ false |
| 7: |
|
nil ++ y |
→ y |
| 8: |
|
(x . y) ++ z |
→ x . (y ++ z) |
|
There are 3 dependency pairs:
|
| 9: |
|
REV(x . y) |
→ rev(y) ++# (x . nil) |
| 10: |
|
REV(x . y) |
→ REV(y) |
| 11: |
|
(x . y) ++# z |
→ y ++# z |
|
The approximated dependency graph contains 2 SCCs:
{11}
and {10}.
-
Consider the SCC {11}.
There are no usable rules.
By taking the AF π with
π(++#) = 1
and π(.) = [2] together with
the lexicographic path order with
empty precedence,
rule 11
is strictly decreasing.
-
Consider the SCC {10}.
There are no usable rules.
By taking the AF π with
π(REV) = 1
and π(.) = [2] together with
the lexicographic path order with
empty precedence,
rule 10
is strictly decreasing.
Hence the TRS is terminating.
Tyrolean Termination Tool (0.01 seconds)
--- May 4, 2006